{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2e385005-0c11-4d55-acc5-1a1854c7e558",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-04T02:21:40.917987Z",
     "iopub.status.busy": "2022-04-04T02:21:40.917438Z",
     "iopub.status.idle": "2022-04-04T02:21:40.924496Z",
     "shell.execute_reply": "2022-04-04T02:21:40.923831Z",
     "shell.execute_reply.started": "2022-04-04T02:21:40.917948Z"
    },
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]\n",
      "(15,)\n",
      "1\n",
      "[[ 1  4  7 10 13]\n",
      " [ 2  5  8 11 14]\n",
      " [ 3  6  9 12 15]]\n",
      "2\n"
     ]
    }
   ],
   "source": [
    "import numpy as np \n",
    "arr=np.arange(1,16,1)\n",
    "print(arr)\n",
    "print(arr.shape)\n",
    "print(arr.ndim)\n",
    "arr1=arr.reshape(5,3).T\n",
    "print(arr1)\n",
    "print(arr1.ndim)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a15e6e98-292d-4ff3-82f9-270ec9231e87",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-11T02:14:16.320615Z",
     "iopub.status.busy": "2022-04-11T02:14:16.319580Z",
     "iopub.status.idle": "2022-04-11T02:14:17.184198Z",
     "shell.execute_reply": "2022-04-11T02:14:17.183568Z",
     "shell.execute_reply.started": "2022-04-11T02:14:16.320583Z"
    },
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "分班成绩排序： [[30 34 35 36 37 38 39 39 41 41 41 41 42 42 43 43 45 45 45 45 46 47 48 48\n",
      "  52 52 53 55 57 58 58 58 59 60 60 61 63 63 64 66 66 70 72 74 76 79 80 80\n",
      "  81 84 84 84 87 87 87 92 92 94 95 99]\n",
      " [30 30 33 33 34 37 38 39 39 41 42 43 44 46 46 47 47 47 48 51 52 52 53 55\n",
      "  55 57 58 58 59 60 60 61 62 62 63 63 67 67 68 69 70 70 71 71 73 73 75 78\n",
      "  78 80 81 82 83 92 92 92 94 96 97 98]]\n",
      "总数排序： [30 30 30 33 33 34 34 35 36 37 37 38 38 39 39 39 39 41 41 41 41 41 42 42\n",
      " 42 43 43 43 44 45 45 45 45 46 46 46 47 47 47 47 48 48 48 51 52 52 52 52\n",
      " 53 53 55 55 55 57 57 58 58 58 58 58 59 59 60 60 60 60 61 61 62 62 63 63\n",
      " 63 63 64 66 66 67 67 68 69 70 70 70 71 71 72 73 73 74 75 76 78 78 79 80\n",
      " 80 80 81 81 82 83 84 84 84 87 87 87 92 92 92 92 92 94 94 95 96 97 98 99]\n"
     ]
    },
    {
     "data": {
      "image/png": "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LV269IjWCtVgsN9JqCRH5XSOmpqajB07Nsmvnj/d19eXmpqabNmyJeeee26SZN68eQe9hvxI2rlzZ9avX5+LLrooSVIqlSqqvsF0dnZm7ty5SZK5c+eOWn179+7NT3/608yfPz9JUldXl+OOO65i6nurzZs358QTT8zkyZMrqr7+/v68+eab6evry5tvvpmJEydWzPn34osv5tRTT82xxx6b2travOc978k///M/j/r3N2vWrIOufB+qpieeeCIf/vCHU1NTk9NPPz179uxJT0/PEa0X3ukG+52ESnJUTudIfhUSvvjFL+all17KRz7ykUyZMiXjxo1LbW1tkl+96OU3X0N+JH3jG9/IFVdckddffz1JsmvXroqqL0mWLVuWJLn44ovT2tqa3t7eTJo0KUkyceLE9Pb2jkpdO3bsyIQJE7Jq1ar8/Oc/z4wZM/LpT3+6Yup7q0cffTTnn39+klRMfQ0NDfnoRz+az372sznmmGPy3ve+NzNmzKiY82/69On59re/nV27duWYY47Jhg0bMnPmzIr5/t7qUDV1d3enqalpoF1jY2O6u7sH2gLwznfUhugxY8bkrrvuyp49e3L33Xdn27Zto13SgCeffDL19fWZMWNGtmzZMtrlDOq2225LQ0NDent7c/vttx/0StWamppRezFOX19fnn/++Vx11VU57bTTsnr16qxZs6Zi6vu1/fv358knn8zll19+0GejWd/u3bvT2dmZlStXZty4cfnKV76SjRs3jkotg5k2bVo+/vGP5/bbb8/YsWNz8sknZ8yYA/8oVgn/vr+pEmsCYPQctSH614477ricccYZefbZZ7N379709fWltrY23d3dB72G/Eh55pln8sQTT2TDhg1588038/rrr+cb3/hGxdSXZODY9fX1mTNnTrZu3Zr6+vr09PRk0qRJ6enpyYQJE0altsbGxjQ2Nua0005Lkpx77rlZs2ZNxdT3axs2bMgpp5ySiRMnJknF1Ld58+accMIJA8c/55xz8swzz1TU+Td//vyB6Tp/+7d/m8bGxor5/t7qUDU1NDSkq6troN3OnTtH9fsE4Mg7KudEv/baa9mzZ0+SXz2pY9OmTZk6dWrOOOOMPP7440mShx9++KDXkB8pl19+ee69996sXLkyS5YsyX/6T/8p119/fcXUt2/fvoFpJvv27cumTZty0kknpaWl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\n",
      "text/plain": [
       "<Figure size 864x864 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "两个班总的成绩平均值为： 60.458333333333336 标准差为： 18.6872932913131 方差为： 349.2149305555556 最高分为： 99 最低分为： 30 中位数为： 58.5\n",
      "两个班总的成绩平均值为(四舍五入）： 60.0 标准差为(向上取整）： 19.0 方差为（向下取整）： 349.0 最高分为： 99 最低分为： 30 中位数为： 58.5\n",
      "每一个班的最高成绩： [99 98]\n",
      "每一个班的平均成绩： [59.88333333 61.03333333]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np \n",
    "np.random.seed(10)\n",
    "stu=np.random.randint(30,100,120).reshape(2,60)\n",
    "print(\"分班成绩排序：\",np.sort(stu))\n",
    "allstu=stu.flatten()\n",
    "print(\"总数排序：\",np.sort(allstu))\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use(\"ggplot\")\n",
    "fig,axes=plt.subplots(2,2)\n",
    "fig.set_size_inches(12,12)\n",
    "ax1=axes[0,0]\n",
    "ax1.hist(allstu)\n",
    "ax2=axes[0,1]\n",
    "ax2.boxplot(allstu)\n",
    "plt.show()\n",
    "def descStu(arr):\n",
    "    avg=np.mean(arr)\n",
    "    std=np.std(arr)\n",
    "    var=np.var(arr)\n",
    "    max_s=np.max(arr)\n",
    "    min_s=np.min(arr)\n",
    "    med_s=np.median(arr)\n",
    "    return avg,std,var,max_s,min_s,med_s\n",
    "#计算两个班的总成绩平均值，标准差，方差，最高分，最低分，中位数\n",
    "avg_s,std_s,var_s,max_s,min_s,med_s=descStu(stu)\n",
    "\n",
    "print(\"两个班总的成绩平均值为：\",avg_s,\"标准差为：\",std_s,\"方差为：\",var_s,\"最高分为：\",max_s,\"最低分为：\",min_s,\"中位数为：\",med_s)\n",
    "print(\"两个班总的成绩平均值为(四舍五入）：\",np.rint(avg_s),\"标准差为(向上取整）：\",np.ceil(std_s),\"方差为（向下取整）：\",np.floor(var_s),\"最高分为：\",max_s,\"最低分为：\",min_s,\"中位数为：\",med_s)\n",
    "print(\"每一个班的最高成绩：\",stu.max(axis=1))#实现对每一行的数据进行聚合\n",
    "print(\"每一个班的平均成绩：\",stu.mean(axis=1))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "py35-paddle1.2.0"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
